package com.googlecode.maven.plugin.appassembler;

import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * File archiver interface.
 */
public interface Archiver
    {
    /**
     * Archive files.
     *
     * @param sourceDirectory Source directory. The directory itself is not
     * archived.
     * @param targetFile Target archive file.
     * @param executableFiles List of relative paths to executable files.
     * @throws IOException If an I/O exception occurred.
     */
    void archive(File sourceDirectory, File targetFile,
            List<String> executableFiles)
            throws IOException;
    }
